//package com.zn.task;
//
//import com.alibaba.fastjson.JSONObject;
//import com.zn.entity.OptionAccount;
//import com.zn.mapper.OptionAccountMapper;
//import com.zn.util.Constant;
//import com.zn.vo.AccountInfo;
//import com.zn.vo.CustomerTurnoverInfo;
//import com.zn.vo.TradeHyInfo;
//import com.zn.vo.Response;
//import com.zn.web.rpc.TradeRemoteCall;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.scheduling.annotation.Scheduled;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//import java.util.Set;
//
///**
// * @author YinJiaWei
// * @version 2018/10/18 13:10
// */
////@Component
//public class ExecuteTradeTask {
//    @Autowired
//    private TradeRemoteCall tradeRemoteCall;
//    @Autowired
//    private OptionAccountMapper optionAccountMapper;
//    @Autowired
//    private RedisTemplate<String,String> redisTemplate;
//
//
////    @Scheduled(cron="*/1 * * * * ?")   //每5秒执行一次
//     public void getTarget(){
//        try{
//            /**
//             * 获取所有合约信息
//             */
//            Response hyResponse=tradeRemoteCall.allHy();
//            for(TradeHyInfo hyInfo:hyResponse.getHys()){
//                Object hy= JSONObject.toJSON(hyInfo);
//                System.err.println("hy........"+hy);
//            }
//        } catch (Exception e){
//            System.err.println("task Error ..............:" + e);
//        }
//    }
//
//    /**
//     * 交易账户的登录
//     */
//    @Scheduled(cron="*/1 * * * * ?")
//    public void tradeAccountLogin(){
//        List<OptionAccount> optionAccountList=optionAccountMapper.selectAllAccount();
//        /**将查询的账户进行登录**/
//        for(OptionAccount optionAccount:optionAccountList){
//            tradeRemoteCall.login(Long.valueOf(optionAccount.getOptionTradeAccount()),optionAccount.getOptionTradePassword());
//        }
//    }
//
//    /**
//     * 查询成交信息
//     */
//    @Scheduled(cron="*/1 * * * * ?")
//    public void getTurnoverTask(){
//        try{
//            Set<Object> hashKeys=redisTemplate.opsForHash().keys(Constant.OPTION_ORDER_MAX_IDX);
//            for(Object hashKey:hashKeys){
//                /**获取交易账户的ID**/
//                Object accountInfoObj=redisTemplate.opsForHash().get(Constant.ACCOUNT_INFO_LIST,hashKey);
//                AccountInfo accountInfo=JSONObject.parseObject(accountInfoObj.toString(), AccountInfo.class);
//                /**查询该交易账户的最大id值**/
//                Object maxIdx=redisTemplate.opsForHash().get(Constant.OPTION_ORDER_MAX_IDX,hashKey);
//                /**查询成交信息**/
//                Response response=tradeRemoteCall.getTurnover(accountInfo.getId(), Integer.valueOf(maxIdx.toString()));
//                List<CustomerTurnoverInfo> customerTurnoverInfos=response.getKhcj();
//                for(CustomerTurnoverInfo customerTurnoverInfo:customerTurnoverInfos){
//                    String json=JSONObject.toJSONString(customerTurnoverInfo);
//                    /**{"kh":93,"inst":"10001313","dir":0,"of":0,"vol":1,"price":0.1147,"comm":10.00,"day":"20181017","time":"10:54:22","tid":128,"idx":128,"oid":127}**/
//                    redisTemplate.convertAndSend(Constant.TRADING_NOTIFY_CHANNEL,json);
//                }
//            }
//        } catch (Exception e){
//            System.err.println("task Error ..............:" + e);
//        }
//    }
//}
